#ifndef DependencyDecoder3OTSibling_H
#define DependencyDecoder3OTSibling_H
#include"ParseForestItem.h"
#include"DependencyDecoder2OSibling.h"

class DependencyDecoder3OTSibling : public DependencyDecoder2OSibling{
public:
	DependencyDecoder3OTSibling(DependencyPipe *pipe);

	virtual ~DependencyDecoder3OTSibling();

	vector<pair<FeatureVector*, string*> >* decodeProjective(DependencyInstance* inst,
		vector<vector<vector<double> > > &probs, vector<vector<vector<double> > > &probs_trips,
		vector<vector<vector<double> > > &probs_sibs, vector<vector<vector<vector<double> > > > &probs_ttrips,
		vector<vector<vector<vector<double> > > > &probs_tsibs, vector<vector<vector<vector<double> > > > &nt_probs, int K, ParseForestItem ****TSib_chart);

	double getTriTripProb(int par, int ch1, int ch2, int ch3, vector<vector<vector<vector<double> > > > &probs_ttrips, vector<vector<vector<vector<double> > > > &probs_tsibs);
};
#endif
